웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > js

[자바스크립트] 데이터 타입 상수란? 상수의 선언 및 특징

Last Modified : 2021-06-21 / Created : 2016-06-01
13,790
View Count


변수는 값을 저장하기 위해 가장 넓리 쓰이기 때문에 아시겠지만 상수는 모르시는 분들이 있을 것입니다... 이 상수는 변수와 다른 차이점을 가지는데요... 가장 큰 차이점이라면 상수는 변수와 달리 한번 설정하면 readonly 읽기만 하는 자료형을 말합니다. 다시말해 한 번 설정하면 절대 변하지 않는 값을 의미합니다. 그래서 가끔은 변수의 선언보다 상수가 더 유용할 수도 있죠. 그럼 어떤 경우에 상수를 사용할까요? 일반적으로 웹페이지 안에서 변하지 않는 값들에 대하여 상수 선언을 합니다. 이 경우 아래와 같은 것들이 이에 해당하는 요소입니다.

1. 페이지 url
2. 페이지 파라미터(쿼리스트링)
3. 고객 정보 등 외부에서 입력된 값(id, password, key value)
4. 원주율 및 기타 수학 공식 등

위와 같은 경우의 데이터를 처리하기 위해서 상수가 많이 사용됩니다. 그럼 아래에서 간단한 방법을 알아봅니다.

!! 참고) 상수도 변할 수 있다?
상수는 변하지 않는 값이지만 실제로 변하기도 하는 예외의 경우가 있습니다. 저장할 값이 Array 등의 참조 변수인 경우가 이런 경우입니다. 참조 변수의 경우 바뀔 수 있다는 점만 알아두시면 좋을 것 같습니다. 이 부분은 링크를 추가하도록 하겠습니다.



# 상수의 선언 방법

상수 선언 방법은 변수 선언 방법과 문법상 큰 차이는 없이 아래와 같습니다.
const test = 100;
// 상수를 선언하는 방법

var test2 = 100;
// 변수를 선언하는 방법

위와 같이 const를 사용해 상수를 선언할 수 있습니다. 상수는 한번 선언되면 앞에 언급한 것처럼 그 값이 바뀌지 않습니다. 예를들어 아래의 예제는 처음 test 라는 상수를 1000이라고 선언하고 그 다음에는 0으로 변경하는 예제입니다. 물론 상수이기 때문에 출력된 변수의 값이 0이 아닌 1000이 되어야 할 것입니다. 아래 예제를 봐주세요.
const test = 1000;
// 초기값으로 상수 const에 1000을 설정

const test = 0;
// 다시 상수 test에 0을 설정

console.log(const.test)

위 코드를 수행할 경우 아래와 같습니다.
1000
// 출력값으로 1000

출력결과는 예상과 같이 변경되지 않고 처음의 1000을 출력합니다.


참고로 아래와 같이 만약에 변수와 상수를 동시에 선언한다면 어떻게될까요?
var const value = "readonly";

이 경우 오류가 띄며 변수, 상수 둘 다 선언되지 않습니다.


@ 참고하세요
상수는 절대 변하면 안되는 값이기 때문에 원주율이나 특정 공식등 변하지 않는 값을 필요로 할 때 상수로 설정하여 많이 사용됩니다. 이런 값들은 확실히 상수를 사용하는 것이 좋겠죠? 한가지 더.. 상수 설정의 const 키워드는 최신 브라우저에서는 잘 동작하나 IE 8, IE 9, IE10에서는 동작하지 않습니다. 하지만 IE11 이상에서는 잘 동작합니다.



# 생각해볼 문제... 호환성을 위해 다른 방법은 없을까?


상수가 아닌 다른 방법으로 변하지 않는 값을 설정하려면 객체의 메소드를 사용할 수도 있을 것 같습니다. 메소드는 특정 값을 반환하되 메소드의 프로퍼티는 외부에서 접근할 수 없고 get()만 존재, 즉 set()이 없다면 동일한 기능이 가능할 것입니다.

Previous

[JavaScript] 변수에서 특정문자 기준 자르기(나누기), split()

Previous

[자바스크립트] replace() 문자 변환, 치환